home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Development Libraries
/
SGI IRIX 6.2 Development Libraries.iso
/
dist
/
complib.idb
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
dopmtr.z
/
dopmtr
Wrap
Text File
|
1996-03-14
|
3KB
|
133 lines
DDDDOOOOPPPPMMMMTTTTRRRR((((3333FFFF)))) DDDDOOOOPPPPMMMMTTTTRRRR((((3333FFFF))))
NNNNAAAAMMMMEEEE
DOPMTR - overwrite the general real M-by-N matrix C with SIDE = 'L'
SIDE = 'R' TRANS = 'N'
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
SUBROUTINE DOPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO )
CHARACTER SIDE, TRANS, UPLO
INTEGER INFO, LDC, M, N
DOUBLE PRECISION AP( * ), C( LDC, * ), TAU( * ), WORK( * )
PPPPUUUURRRRPPPPOOOOSSSSEEEE
DOPMTR overwrites the general real M-by-N matrix C with TRANS = 'T':
Q**T * C C * Q**T
where Q is a real orthogonal matrix of order nq, with nq = m if SIDE =
'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1
elementary reflectors, as returned by DSPTRD using packed storage:
if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
SIDE (input) CHARACTER*1
= 'L': apply Q or Q**T from the Left;
= 'R': apply Q or Q**T from the Right.
UPLO (input) CHARACTER*1
= 'U': Upper triangular packed storage used in previous call to
DSPTRD; = 'L': Lower triangular packed storage used in previous
call to DSPTRD.
TRANS (input) CHARACTER*1
= 'N': No transpose, apply Q;
= 'T': Transpose, apply Q**T.
M (input) INTEGER
The number of rows of the matrix C. M >= 0.
N (input) INTEGER
The number of columns of the matrix C. N >= 0.
AP (input) DOUBLE PRECISION array, dimension
(M*(M+1)/2) if SIDE = 'L' (N*(N+1)/2) if SIDE = 'R' The vectors
which define the elementary reflectors, as returned by DSPTRD.
AP is modified by the routine but restored on exit.
PPPPaaaaggggeeee 1111
DDDDOOOOPPPPMMMMTTTTRRRR((((3333FFFF)))) DDDDOOOOPPPPMMMMTTTTRRRR((((3333FFFF))))
TAU (input) DOUBLE PRECISION array, dimension (M-1) if SIDE = 'L'
or (N-1) if SIDE = 'R' TAU(i) must contain the scalar factor of
the elementary reflector H(i), as returned by DSPTRD.
C (input/output) DOUBLE PRECISION array, dimension (LDC,N)
On entry, the M-by-N matrix C. On exit, C is overwritten by Q*C
or Q**T*C or C*Q**T or C*Q.
LDC (input) INTEGER
The leading dimension of the array C. LDC >= max(1,M).
WORK (workspace) DOUBLE PRECISION array, dimension
(N) if SIDE = 'L' (M) if SIDE = 'R'
INFO (output) INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
PPPPaaaaggggeeee 2222